CONTENTS | INDEX | PREV | NEXT
 Domination - Diary of a game part II

AIO NOTE : Unfortunally we are having problems getting the pictures
to display when clicked on, the pictures stated in this diary can be
found in the Screenshots directory of the AIO archive.

                         ___
                         / /__ __ ·__ __ __ ·__ __
                        /_//_////// //-/ / //_// /
                           The Diary of a Game

                        By Jamie Solomons of Amiga1

                                Part  Two


 Introduction

 You might not have heard much for a while but Domination is still going
 strong. Our deadline for the game is christmas (it may change but not if we
 can help it). If the game is not freeware (likely), there will hopefully be
 a special offer for AIO readers. We'll probably approach one of those new
 software development companies that have appeared such as Vulcan Software.

 This is part two of the diary and it's pretty large to keep up with all the
 developments since part 1 back in May. If you haven't read part one then
 you can still download issue #12, or any other issue from the official AIO
 homepage:

                   www.amiga1.demon.co.uk/aio/index.htm


 JUNE
 Due to my exams, Domination might suffer a bit in terms of the amount of
 time I am able to devote to it. This will change next month though, when
 they are all over


 Oooops!
 I made a silly mistake after finishing the first part of the diary. I
 accidentally overwrote my latest version of Dom. It was just before I was
 going to make a backup as well. I lost quite a large chunk and I had quite
 a bit of catching up to do.


 What Exactly Did You Lose Then?
 I lost a load of coding for the Military Catalogue Menu. Here is a copy of
 the menu structure in the game so you can see where it lies:


       +->Data Menu
       |
       +->Trades Menu
       |
       +->Government Menu
       |                   +-->Military Database Menu
       +->Help Menu        |
       |                   |   +-----------------------+
       +->Military Menu>---+-->|Military Catalogue Menu|
  Base |                   |   +-----------------------+
  Bar--+->Mining Menu      |
       |                   |
       +->Research Menu    |
       |                   |
       +->Fleet Menu<------+
       |
       +->Finance Menu
       |
       +->Option Menu

 I haven't done much for the Military Menu yet. All the program does for it
 at the moment is draw it and set up the buttons (make them clickable) so
 you can access the Military Catalogue Menu, Military Database Menu and take
 a shortcut to the Fleet Menu.


 Military Catalogue Menu - What's that then?
 The Military Catalogue Menu enables you to construct ships, space
 stations, and anything else that I care to add. I have started coding it
 to let you construct ships and I had nearly finished it when I made the
 mistake. I will take you through all the steps in creating this menu.    


 Creating the Military Catalogue Menu - A Step by Step Guide
 These are the steps that I take in creating the menu:

 1. Load up DPaintIV AGA.
    As Dom does not use AGA, I have to disable it before making any
    graphics for it because the palette in DPaint is automatically set to
    8-bit (0 to 255) for the RGB settings.                                     

 2. Draw the menu.
    It's also a good idea to save a version of the picture that is labelled
    for reference purposes. Click  here  to see the menu design and
     here  to see the menu with some example data on it.

    I will just spend some time to explain the menu in detail. The ship
    list on the left consists of 16 ships that you can equip however you
    want. This list of ships can be scrolled using the scroll bar on the
    right hand side of the list and each ship has its own little 9x9 icon
    to symbolise it. After you construct a ship you can select how many to
    build using the quantity buttons below the ship list. When you done,
    you simply click on the buy button and construction begins. The large
    box to the right of the ship list contains a large "green print" of the
    selected ship. The dotted green boxes on this picture are bays. You can
    put one item in a bay and you have different bays for different types of
    items. The different types of bays are:

    Weapons, Shields, Sensory (or spy) equipment, Star Drives, Colonisation
    Equipment (Terraformers ect.) and Accessories (for things like
    transporters, cloaking devices, ect).

    Also displayed in this box is the cost for the ship (without any items
    equipped), the maximum capacity of the vessel, and its maximum velocity.

    You might recognise the ship in my picture as one from K240. I assure
    you that this is only temporary and I will eventually draw my own
    ships when I get enough time.

    To the right of this display is the place where you select the items
    that you want to equip. This is achieved with a tab system to select
    the type of item that you wish to select. When the tab is changed, all
    the items of that type that you have are displayed in the box below
    the tab buttons. To equip your ship, you simply drag and drop the item
    onto your ship. You are most likely thinking, "won't the ship get
    rather cluttered with all those bays and items". Yes it would but when
    you click on, say, the tab to display the shields, the only bays that
    are displayed on the ship display are those for shields. This avoids
    cluttering.

    The number of bays that the selected ship has available for different
    types of equipment is shown near the bottom of the menu. Below that is
    a two line description of the ship.

    After the menu has been designed you can proceed to the next step:

 3. Code the drawing.
    This is the tedious part. You have to make the program actually "draw"
    the menu. You could load in the menu from disk of store it with the
    program but this is a waste of memory and disk space when you could
    spend an hour making the program draw it. To do this you need to use
    AMOS Pro's drawing commands and have DPaint open in order to keep
    flicking over to get coordinates, colours, ect. You can check to see if
    you have made any mistakes by running the program, saving the display
    and loading it into DPaint's spare screen. Then simply flick between
    what the display is supposed to look like and the display that the
    program produced to see where you made mistakes by using the "j" key to
    just to the other screen and back.

 4. Code the mouse zones.
    These are areas on the menu that interact with the mouse. They are
    defined with a simple command for each zone:

    Set Zone number,x1,y1 To x2,y2

    You can use these zones to make buttons, sliders, or whatever you want.
    To get the coordinates just use DPaint.

 5. Code the interface.
    This is the biggest part. It is also the part of my coding that I lost.
    As I write this diary, I will do the coding for Domination as I go.

 It is best not to do part 3 until you have the whole menu up and running
 smoothly. To begin with it is best to just make the program load in an IFF
 picture and place the mouse zones on that. I'm speaking from experience
 when I say this. Many a time I have made an ultra fast, compact drawing
 procedure for a menu only to find that I want to make changes to its
 design.

 I have recently made some changes to the military catalogue menu. The
 information for the selected item used to be text based. Mark and I have
 changed it into a more graphical display. Click  here  to see what I mean.
 I think it looks a lot better now and it's easier to look at and get
 information from. It's lucky I haven't made the program draw the menu yet
 or I wouldn't have been able to change it as easily.

 The military catalogue menu is coming along quite nicely. I have coded
 the drag and drop routines and they work beautifully. I showed the working
 product to Mark and he was very impressed seeing as I created the code from
 scratch and It was not based on any other code. You can even cancel the
 dragging by clicking the right mouse button. What happens to the object
 depends on where it is dragged from.

  +------------------------------+---------------------------------------+
  | Place object is dragged from | Effect of clicking right mouse button |
  +------------------------------+---------------------------------------+
  |    Object display box        |        Disappears from pointer        |
  |                              |                                       |
  |        Ship bay box          |       Reappears in ship bay box       |
  +------------------------------+---------------------------------------+

 I have completely finished the button routines. The buttons work just like
 intuition buttons with cancelling and the like. I have nearly finished
 coding the slider bars. The vertical slider bar procedure is completely
 finished although I am still tweaking at it. The horizontal slider bar is
 nearly finished and that's what I'm working on right now. The tabs work
 wonderfully and I've not had any trouble with them. There is still a lot of
 work left to do on this menu but once it's done I hope it will be bug free
 and fluid.


 JULY
 What a month! The Amiga1 team has really gone for it. It is the most we
 have ever done in one go. My exams have finished and I am free to work on
 the game as much as I want. There is so much work still to do but if we can
 keep up the pace we would be doing very well. Mark has had more time to
 help me this month and ship building is complete at last and we have just
 started the ship control routines which let you give commands to your
 ships. Once we have finished that we will design the fleet menu so you can
 put ships into fleets. Once you can setup fleets we need to let you give
 the fleets commands. First a bit of game design...


 Colonisation

 Some ships can be equipped with colony equipment (i.e. terraformers). These
 ships can then be sent to systems that have planets you wish to inhabit.
 The idea of being able to expand your civilisation was originally going to
 be the idea behind the game but it is no longer the central focus. Now we
 have decided that there will be set scenarios like in Sim City. This means
 that we can make expansions for the game as time goes on. No longer will
 you complete a game and let that be the end of it. Just install the
 expansion scenario(s) and play a different mission or 20! This is our plan
 and at this point in time it looks very possible.

 Ships with colony equipment can set up both military bases and
 colonies. The type of equipment equipped determines the types of planet
 that can be inhabited. A simple citybuilder could construct a colony on an
 Earth-like planet but not on a gas giant. By citybuilder I do not mean that
 the ship builds the colony, it means that the ship has a special chip
 embedded in its core system that allows it to coordinate the building of
 the city by communicating with the community that was transported to the
 planet.

 
 Races

 We have though a little about the some of the races you might encounter in
 Domination. This topic has not been pursued to a great extent as we are
 concentrating mostly on the game's mechanics at the moment. Only when the
 user interface is complete and bugtested can we really begin to spill our
 imagination (and we can't wait!!). All of us at Amiga1 are into Star Trek
 and Mark and I have recently been watching the borg episodes of Star Trek -
 Voyager. This has made me want to incorporate a race that assimilates
 technology from other races. Due to the amount of technology that it has
 already assimilated when you first encounter the race means that it will be
 a fearful adversary. Some races are friendly and you may be able to trade
 with some of them and possibly end up with new equipment to embed into
 future ship designs (that was not a hint! ;)


 Cheat Modes

 We have thought of a couple of cheat modes. The first lets you have all
 the equipment for your ships that you could possibly gain in the game (this
 should be a very difficult cheat either to work out or activate because
 getting enhanced equipment in the game is a difficult task at the best of
 times). The other reflects our interest in science fiction. The cheat gives
 you new ships like the Enterprise (Star Trek), Star Bug (Red Dwarf),
 Saratoga (Space Above and Beyond) etc. This is a very unlikely cheat mode
 due to breaches of copyright (I would have to look into this). Ok, now back
 to the making of the game.


 Base Tabs

 The tabs on the base bar have not all been drawn yet. Some have been
 planned to display certain features but at this moment in time only four
 out of the eight have been drawn and only three of those four have been
 fully coded. I have not before stated what the tabs are, so you can see
 in this  picture .


 Recent Development
 A lot has been done to Domination recently. I hope I havn't missed
 anything.

 .> Added a nice "ACCESSING" picture to the beginning of the game to show
    when it is loading.

 .> Made the map screen scroll. There are three speeds of scrolling. The 
    fastest is achieved by using the directional buttons on the basebar. The
    medium speed is achieved by moving the pointer to the edge of map
    screen. If you want slow, precise scrolling you simply hold down the
    right mouse button when moving the map.

 .> Slightly redesigned the fleet tab on the base bar. See  BaseTab 
    picture for details.

 .> Added a useful procedure that I found on a CU Amiga CD. When you press
    the help key, a white bar appears at the bottom of the screen giving you
    information about the mouse pointer position, current mouse zone and
    colour under the pointer. I have expanded the procedure to allow me to
    view the hardware coordinates of the mouse pointer and snapshot screens
    to view in DPaint. The procedure (before my modifications) is included
    in this archive called "ScreenInfo.AMOS" and is by Steve Bennett.

 .> Slightly redesigned the base bar to make it look a little better. We
    have made the letter display larger by changing its bulky buttons for a
    pretty slider bar. This also gave us space to add an extra speed button.

    Speed button summary:   (Real Time = Game Time)
    +--------+------------------+
    | Button |   Clock Speed    |
    +--------+------------------+
    |    1   |     Paused       |
    |    2   |  1 sec = 1 hour  |
    |    3   | 1 sec = 12 hours |
    |    4   |  1 sec = 1 day   |  <- New button
    +--------+------------------+

    We also changed the money display. The display was very small before due
    to the options button to the right of it. We got rid of the help button
    and put the options button in its place. I think we might now use the
    help button on the keyboard to display a help bar (like the programmer's
    help bar mentioned earlier) to show what a button does or what a window
    displays when the mouse pointer is moved over it.

    The money display would before display 1000 credits as 1K (K being
    1000). Now that we have the space it now displays the real value (1000).
    This means it is more accurate because the number before was rounded to
    the nearest denomination.

 .> Redesigned military menu (tab1). Tab 1 is the only tab on the military
    menu that is finished. That is the ship building. We have slightly
    redesigned the look and "feel" of this menu and it looks a bit better.
     New Military Tab 

 .> Designed and programmed the ship building system. The ships are
    constructed in orders. A new order is set up every time you click on
    the buy button on the military catalogue. If you build a large order of
    ships at the same time, they will be constructed slightly faster (batch
    production rather than job production - sorry, I took GCSE Business
    Studies :). When an order is complete you are informed via the message
    bar.

 .> Coded the 8th tab on the base bar (unassigned ship command). This allows
    you to send commands to ships that have not been assigned to fleets.
    They cannot do everything that fleets can do though.

    +-------------+--------+------------+
    |   Command   | Fleets | Sole Ships |
    +-------------+--------+------------+
    | Goto System |   Yes  |     Yes    |
    | Colonise    |   Yes  |     Yes    |
    | Spy         |   Yes  |     Yes    |
    | Geo. Survey |   Yes  |     Yes    |
    | Attack      |   Yes  |     No     |
    | Defend      |   Yes  |     No     |
    | Patrol      |   Yes  |     No     |
    | Rendezvous  |   Yes  |     No     |
    +-------------+--------+------------+

 .> Designed the different classes of planets and their systems. There are
    10 different planet classes but this may increase if we come up with any
    more. Mark drew the graphics for them in DPaint. They are quite good.
     Planets and their classes 
    You are welcome to see if you can do better. If I like yours more then I
    will use then instead (please use the same palette).

 .> Completed base tab 7. When you click the select destination button on
    tab 8, tab 7 flicks to the front and the message "Select target..."
    appears. You can then either click on a system or on a planet. When you
    have selected a destination for you ship(s), tab 8 flicks bach into view
    with the selected destination in the target box. If it was a planet then
    the image next to the destination box will be green. If it was another
    system then the image will be yellow. The four buttons above the
    destination box only work if they are appropriate to the selected
    destination (I might grey them out if they're not). You can't colonise a
    star for example.

 .> Made a little blitz proggie. The AMOS bob editor kept screwing up banks
    that contained objects with different number of colours so I had to find
    another editor and see if that would work. The one I found works fine. I
    can't tell you what it is because I can't afford to register it at the
    moment. Once I have registered it I will let you know what it's called
    and where to get it from.

    The editor is compiled and cannot be called from the editor so I have to
    call it from workbench. I made a little blitz program that makes a
    single button in a window that when I click loads up the editor. It
    makes it a lot easier when I keep going back to the editor.

 .> Code reduction. Mark went over the coding for the communications window.
    He reduced it from about 60 lines to 4! It's a lot smoother!

 .> Begun work on the intro sequence. It looks quite good so far. When it is
    finished it will house the main menu for Domination.


 The Options Menu

 We have decided that we are going to leave the options menu until last.
 One option that I know needs to go in there is one that lets you disable
 the scrolling of the map when you move the mouse pointer to the bottom
 of the visible screen (i.e. bottom of the base bar). At the moment you can
 scroll the map screen down by positioning the pointer at either the top of
 the base bar or the bottom. The top has a slight delay to allow you to move
 over the scroll area when moving from the basebar to the map. The bottom
 scroll area might be annoying for some players (it annoys me sometimes).


 Space?

 We are trying to make the best use of space in the user interface (excuse
 the pun :). This is why we are using tabs so much. It stops the display
 getting cluttered and allows us to get a lot more information into the same
 area. The tabs on the base bar means that we can get eight tines the amount
 of information into just the left hand corner of it.

 We noticed that the military catalogue was rather compact but we noticed
 that the part that shows you the number of each bay type the selected ship
 has is a little wasteful. We could move the icons closer together and make
 them left justified. This would allow use to use the area to the right of
 them for something else. There is nothing that we can put in there yet so
 we won't alter our drawing until there is.


 Getting Arround

 Here's a bit of game plot:

 All ships in Domination use a military technology called quantum
 tunnelling. This is achieved by opening small wormholes in the fabric of
 space just large enough for the ship to enter. These small wormholes only
 travel a short distance in comparison to the size of the galaxy but in
 for of interstellar travel in the local quadrant they prove invaluable
 allowing travel of 20 light years in under a week.

 Ships in transit cannot be sent new commands until they reach a system
 containing a military outpost. If you send a ship to a system without a
 military outpost, you have no way of communicating with it. When the
 ship's supplies begin to run low, it will return. The reason is that
 your race has not yet been able to successfully transmit signals through
 the wormholes. All attempts so far have failed. Until this problem is
 fixed - you cannot communicate with your ships once they have left the
 system. (This is not because we cannot program it. It is just to make the
 game more interesting. You may be able to research into the technology
 later in the game).


 The Research Menu

 The research menu is accessable from the base bar and enables you to
 expand your existing technology and invent new ones. You begin with the
 best equipment in the military available to you. There are many other
 accessories that can be equipped to a space vessel but you only buy from
 the military due to security breaches. The maximum number of items per
 equipment type is currently eight but I am thinking of increasing this.


 Ship Construction

 When you construct a ship, where does it begin? This is something we had to
 think about. We came to the decision that you can select, via a tab in the
 military menu, which military outpost (be it on a planet or a space
 station) your ships are constructed at.


 Ship Plee

 We need some ships drawn for the military catalogue menu. If you want to
 have a go then draw one in the box provided in the picture below and send
 it to Chris (Brown) at the address shown below. If I like it then I will
 put it in the game. In total I need 16 ships. You don't have to draw 16 if
 you don't want to. If 16 people send in a ship each and I like them all,
 there will be enough. Feel free to draw as many as you like as they would
 all be appreciated (Chris Seward might even show them in AIO if I ask him
 nicely!).

  Ship Construction   The file is named "Dom8.Iff" and is in the
                       screenshots directory of the AIO archive.

 N.B. Everything that can't be seen from the outside of the ship should be
      drawn in the darker green.


 What's to do next?

 The next thing to do is the system display on the 7th tab on the basebar so
 we can select planets and start coding the colonisation routines. I think
 this will be quite enjoyable compared to coding the ship building. However,
 we might do the fleet menu next, allowing you to put your unassigned ships
 into fleets. This would make the next step to be able to command the
 fleets. The colonising routines and the fleet command routines are linked
 due to the fact that there must be a military outpost in the system
 (achieved by colonising).


 THE END
 You are now up to date with all the developments of this month.
 We are working very hard at the moment and the diary this relects this.
 In about three weeks Mark will be on holiday so he can help increase the
 pace even more but in the meantime I have to put in most of the work
 myself (as usual :).


 August (up to the 15th)
 This month has been has been my personal favourite as far as Domination
 goes. We have introduced random seeds, completed the introduction
 sequence, started the main menu, and many other things.


 Mok up
  Here  is a picture of the Domination screen as it looks at the present
 time.


 Made up your mind yet?
 We have come to a decision about whether or not to let the player control
 ships within systems. We have decided that there is no need. The
 interplanetary drives that are fitted to your ships as standard are
 efficient enough to give any ship in a system access to every planet
 within it. It's enough hassle moving individual ships between systems
 unless they are in a fleet.

 This decission means that the button on base tab 1 is no longer needed. I
 have disabled it but before I remove it from the display I need something
 to do in its place and we have no ideas at the moment.


 Recent Developments
 Here they are in a list form to make it easier:

 .> We have done the system display tab and it fully works. It is the
    second fully completed tab.

 .> The fleet short-cut on the military menu is not used. I will wait to
    see if I can think of anything to replace it. If not I will remove it
    and make the military strength bar longer.

 .> We have designed the fleet control menu. It has quite a lot of buttons
    on it and will hopefully have drag 'n dropping of ships. The only part
    of the interface that has been coded so far is the listview of the ships
    at your system (only available if a military outpost is in the system).
    Fleets can only be made if there is a military outpost in the system.
     Fleet Control Menu 

 .> Made system flags. These can be used for various things. So far we have
    used the to set whether of not a system has been explored. To explore a
    system you simply send a ship or fleet there. If a system has not been
    explored, the message is displayed on the system display tab on the base
    bar.

    +----------------------------------------------------------------------+
    | +--+--+--+--+--+--+--+--++-+-+-+-+  +-----+ +----+ +---+---+---+---+ |
    | |__|__|__|__|__|__|  |__||_|_|_|_|  +-----+ +----+ |   |   |   |   | |
    | | _____________________ | +----------------------+ +---+---+---+---+ |
    | ||                    || |                      | |   |   |   |   | |
    | ||p  SYSTEM UNEXPLORED || |                      | +---+---+---+---+ |
    | ||/____________________|| |                      | |               | |
    | +-----------------------+ +----------------------+ +---------------+ |
    +----------------------------------------------------------------------+

 .> We have done the ship movement routines. You can now send a ship to
    another system! When it gets there, you can see the system. I think we
    need to make it so that you have to wait for your ship to return first.

 .> We have now completed the intro sequence and made a main menu for Dom.
    Here it is:

                           +=----------------=+
              =============+    START GAME    +=============
                  ^        +=----------------=+
                  |
                               CONFIGURATION
     Animated selection bar            
                               DISK OPTIONS

                                 CREDITS


                              EXIT FROM D.I.N.


    I'm not going to tell you in what way the bar animates. You'll have to
    wait and see!

 .> Made random seed system. This is my favourite development this month.
    I games like worms you can enter a string and get a level depending on
    the string. This is called a random seed. To explain how it works I
    need to explain computer generated numbers.

    Did you know that random numbers generated by a computer are not
    actually random? In fact they follow a set pattern. Games like worms
    make use of this be telling the computer where in the sequence to start
    the pattern. this starting position is determined by the string that you
    type in (which is converted into numbers). This is why you get the same
    level every time you use the same string.

    In AMOS this is achieved using the randomize command. The number
    following the command is where in the sequence to start the random
    numbers. Those out there that have any version of amos can try the
    following:

         Randomize 1 : Print Rnd(-10)

    Every time you run the program you will get the same answer. I don't
    know why you need the minus (-) sign in from of the 10. If you don't
    use it then AMOS ignores the randomize, strange.

    Domination now allows you to enter a sector I.D.. This is a number and
    is simply used after the Randomize command. This means that all future
    Rnd commands, as long as they contain a '-', will be the same if you
    use the same sector I.D.. This means that the sector will be the same,
    the system names will be the same and the types of number of planets
    within each system will be the same. This ends when it comes to random
    events, they are random.

 .> I have gone through some of the coding removing old stuff that's no
    longer needed. You'ld be surprised how much you can delete. I've been
    careful not to delete anything important though.

 .> Mark suggested reducing the height of the menu title bars. I did, and
    they look a lot better. Take a look at a menu with the new bar:
     Military Catalogue Menu 


 The next step
 The next step is the fleet control menu. That will be a lot of work. I'll
 be back next month with how it went.

 By Jamie Solomons of the Amiga1 team.


 Contact us at: chris@amiga1.demon.co.uk

     Main Menu   Articles Menu